/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.biblio.beansSesion;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;
import org.biblio.mantenimientos.conexion;
import org.biblio.persistencias.Usuario;
import org.biblio.utilitarios.EncriptacionDatos;

/**
 *
 * @author Héctor Alvarenga Desarrollado para Base de Datos II @date
 * 30-april-2012
 */
@ManagedBean(name = "loginBean")
@SessionScoped
public class BeanLogin {

    private String usuario;
    private String pass;
    private String tipoUsuario;
    FacesContext contexto = FacesContext.getCurrentInstance();
    private EncriptacionDatos encriptacionDatos = new EncriptacionDatos();

    public String getPass() {
        return pass;
    }

    public void setPass(String pass) {
        this.pass = pass;
    }

    public String getUsuario() {
        return usuario;
    }

    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }

    public String getTipoUsuario() {
        return tipoUsuario;
    }

    public void setTipoUsuario(String tipoUsuario) {
        this.tipoUsuario = tipoUsuario;
    }

    public String login() throws SQLException {
        if (loginAdmin()) {
            //crear sesion para administradores
            return "correcto";
            
        } else if (loginPrestamo()) {
            //crear sesion para usuarios
            return "prestamo";

        } else {
            FacesContext.getCurrentInstance().addMessage("loginFrm", new FacesMessage(FacesMessage.SEVERITY_ERROR, "Credenciales Incorrectas", null));
            return "incorrecto";

        }

    }

    private boolean loginAdmin() throws SQLException {
        Usuario u = new Usuario();
        conexion cone = new conexion();
        Statement Sentencias = null;
        ResultSet tabla = null;
        Sentencias = cone.getConnection().createStatement();
        tabla = Sentencias.executeQuery("SELECT * FROM usuario WHERE usu_nombre ='" + usuario + "'AND usu_password ='" + pass + "' AND usu_estado = 'A' AND usu_rol_id = 1");
        while (tabla.next()) {
            tipoUsuario = u.getUsuNombre();
            return true;
        }
        return false;
    }

    private boolean loginPrestamo() throws SQLException {
        Usuario urol = new Usuario();
        conexion cone = new conexion();
        Statement Sentencias = null;
        ResultSet tabla = null;
        Sentencias = cone.getConnection().createStatement();
        tabla = Sentencias.executeQuery("SELECT * FROM usuario WHERE usu_nombre ='" + usuario + "'AND usu_password ='" + pass + "' AND usu_estado = 'A' AND usu_rol_id = 2");
        while (tabla.next()) {
            tipoUsuario = urol.getUsuNombre();
            return true;
        }
        return false;
    }

    public String cerrarSesion() {
        HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true);
        session.removeAttribute("loginBean");
        return "cerrar";
    }
}
